package com.volunteer.common;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码枚举
 */
@Getter
@AllArgsConstructor
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),
    
    /**
     * 失败
     */
    FAILURE(400, "操作失败"),
    
    /**
     * 未登录
     */
    UNAUTHORIZED(401, "未登录或登录已过期"),
    
    /**
     * 无权限
     */
    FORBIDDEN(403, "无权限操作"),
    
    /**
     * 不存在
     */
    NOT_FOUND(404, "资源不存在"),
    
    /**
     * 服务器内部错误
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),
    
    /**
     * 参数错误
     */
    PARAM_ERROR(1000, "参数错误"),
    
    /**
     * 用户名或密码错误
     */
    USER_CREDENTIALS_ERROR(1001, "用户名或密码错误"),
    
    /**
     * 账号已存在
     */
    USER_ACCOUNT_EXIST(1002, "账号已存在"),
    
    /**
     * 账号不存在
     */
    USER_ACCOUNT_NOT_EXIST(1003, "账号不存在"),
    
    /**
     * 账号已禁用
     */
    USER_ACCOUNT_DISABLED(1004, "账号已禁用"),
    
    /**
     * 需要完善个人信息
     */
    USER_NEED_COMPLETE_INFO(1005, "请先完善个人信息"),
    
    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(1006, "验证码错误或已过期"),
    
    /**
     * 活动已结束报名
     */
    ACTIVITY_REGISTRATION_CLOSED(2001, "该活动已结束报名"),
    
    /**
     * 活动已满额
     */
    ACTIVITY_FULL(2002, "该活动已满额"),
    
    /**
     * 已报名过该活动
     */
    ACTIVITY_ALREADY_REGISTERED(2003, "您已报名过该活动"),
    
    /**
     * 无法评价未参加的活动
     */
    ACTIVITY_NOT_PARTICIPATED(2004, "您还未参加该活动，无法评价"),
    
    /**
     * 已评价过该活动
     */
    ACTIVITY_ALREADY_EVALUATED(2005, "您已评价过该活动"),
    
    /**
     * 文件上传失败
     */
    FILE_UPLOAD_ERROR(3001, "文件上传失败"),
    
    /**
     * 不支持的文件类型
     */
    FILE_TYPE_NOT_SUPPORTED(3002, "不支持的文件类型");
    
    /**
     * 状态码
     */
    private final Integer code;
    
    /**
     * 消息
     */
    private final String msg;
} 